package com.liusiqi.framework.beans.factory.support;

import com.liusiqi.framework.beans.BeanDefinition;

/**
 * @author: sql
 * @date: 2024/2/22
 * @Description:注册表
 * @version: 1.0
 */
public interface BeanDefinitionRegistry {

    /**
     * 注册BeanDefinition对象到注册表
     * @param beanName
     * @param beanDefinition
     */
    void registerBeanDefinition(String beanName, BeanDefinition beanDefinition);

    /**
     * 从注册表中移除指定名称的BeanDefinition对象
     * @param beanName
     */
    void removeBeanDefinition(String beanName);

    //根据名称获取注册表中的对应的BeanDefinition
    BeanDefinition getBeanDefinition(String beanName);

    //判断注册表中是否包含指定名称的BeanDefinition对象
    boolean containsBeanDefinition(String beanName);

    //获取注册表中所有的BeanDefinition的对象名称
    String[] getBeanDefinitionNames();

    //获取注册表中BeanDefinition对象的个数
    int getBeanDefinitionCount();
}
